Field of the Invention
The present invention is generally directed to an input/output architecture for a computer system, and more particularly directed to an object-oriented input/output architecture for a computer system.
Related Art
A typical computer includes an input/output (IO) system to interface with peripheral devices which are connected to the computer. This IO system serves as an interface between resources of the computer system and the peripheral devices. This IO system also serves as an interface between programs executing on the computer system and the peripheral devices.
IO systems are typically implemented using conventional "procedure-oriented" software programming techniques (as opposed to object-oriented or rule-based software programming techniques). As will be appreciated, software programs produced using procedure-oriented software programming techniques are often not easily extendible. Also, often such software programs cannot be easily reused. Thus conventional IO systems are often not easily extendible, and the software associated with such IO systems are often not easy to reuse.
Typically, an IO system is implemented such that it is specific to a single operating system. The IO system responds to and correctly processes the IO function calls which are associated with the operating system, but the IO system does not have the capability to support any other operating systems. There is a growing need for computers which support multiple operating systems. Clearly, a computer which uses a conventional IO system is at a disadvantage in today's market since it can support only the operation system which the IO system supports.
Thus, what is required is an input/output system for a computer which is easily extendible, which embodies software which is easy to reuse, and which supports multiple operating systems.